iT邦幫忙

2022 iThome 鐵人賽

1
Software Development

Microsoft Orleans雲原生開發框架從小白到大神系列 第 34

[34]---Orleans常見系統架構模式:Registry Pattern及其應用範例

  • 分享至 

  • xImage
  •  

Registry Pattern 介紹

Registry Pattern 是Orleans一種用來解決無法得知想要與之互動的目標Grain個體,是否已經有被正確的初始化過而能放心呼叫商業邏輯RPC之設計模式,它的運作概念是將系統中已啟用過的Grain實體的識別子(identity),登記到一或多個 RegistryGrain 中,並且由 RegistryGrain 來記錄/管理這些Grain資源,讓Client/RPC呼叫端可以透過這種 RegistryGrain 來取得那些Grain資源,以便進行後續的互動。

整個流程如下:

一開始Client端只知道如何建立RegistryGrain的RPC呼叫參考,所以就透過它來取得目標Grain的識別子(identity),接著Client端就可以透過這個取得的識別子來建立目標Grain的RPC實體,並且進行後續的互動。

採用Registry Pattern的目的,如同Microservice技術領域中的 Service registry pattern 一樣,都是為了要解決服務後端眾多資源有可能因為動態變動位址/狀態等前端無法掌控的因素,導致前端不知道實際情形而無從使用的問題;之前有個可以取代此Pattern的實驗性專案(Orleans.Indexing),可在Silo內部的背景服務建立和維護Grain的查詢索引,以便讓Client端用類似Linq查詢的方式來直接尋找並定位想要的Grain參考,後續進行RPC呼叫互動,不過目前此專案是處於是開發暫停的狀態。

Registry Pattern在使用上需注意的是,Registry grain本身有可能會成為單點故障的根源,而且當單一個Registry Grain管理了太多個target grain時,Registry grain本身的負載也會變得非常大,形成效能瓶頸。

Registry Pattern可用在如購物車、目前游戲在線玩家列表等功能實現。

Registry Pattern 應用範例


上一篇
[33]---Orleans常見系統架構模式:Observer Pattern及其應用範例
下一篇
[35]---Orleans常見系統架構模式:Reduce Pattern及其應用範例
系列文
Microsoft Orleans雲原生開發框架從小白到大神39
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言